package comparadores;

import java.util.Comparator;
import cantidadReuniones.CargaPoca;
import tadp.tp.domain.*;


public class PorUbicacion extends Orden implements Comparator<Persona>{
	private Orden sucesor;
	private Edificio edificioReunion;
	private Fecha fechaReunion;

	public PorUbicacion(Edificio edificioReunion,Fecha fechaReunion){
		this.edificioReunion = edificioReunion;
		this.fechaReunion = fechaReunion;
		this.sucesor = null;
	}
	
	@Override
	public Orden getSucesor() {
		return this.sucesor;
	}
	
	@Override
	public int compare(Persona persona1, Persona persona2) {
		// TODO Auto-generated method stub
		Edificio edificioPer1 = persona1.getEdificio();
		Edificio edificioPer2 = persona2.getEdificio();
		
		if(new PorEstado(edificioReunion, fechaReunion).compare(persona1, persona2) == 0){
			
			if(persona1.getEstadoDeReuniones().equals(CargaPoca.getInstance())&&
				new PorCosto(edificioReunion, fechaReunion).compare(persona1,persona2) == 0 ){
				
				if(edificioPer1.equals(edificioPer2)){
					return 0;
				}
				
				if(edificioPer2.equals(edificioReunion)){
					return 1;
				}
			}
			
			if(!persona1.getEstadoDeReuniones().equals(CargaPoca.getInstance())&&
			   new PorHoras(edificioReunion, fechaReunion).compare(persona1,persona2) == 0){
				
				if(edificioPer1.equals(edificioPer2)){
					return 0;
				}
				
				if(edificioPer2.equals(edificioReunion)){
					return 1;
				}
			}
		}
		return -1;
	}
	
}
